1. Field of the Invention
The present invention relates to collecting, modeling, and providing access to information.
2. Description of the Related Art
A number of attempts have been made to retrieve data from a business organization""s various data sources (called back-end data sources) and to present that data to users. An organization""s various back-end data sources may contain different types and formats of data, including relational data, point data, time-series data, and object data. Relational data comprise data from multiple tables of multiple fields. The tables may be related to each other through indexes. Point data is single-type data typically associated with manufacturing systems. For example, a data system may continuously collect a motor""s operating speed and operating temperature as point data. Unlike relational data, point data typically are not comprised of multiple tables. Time-series data are data that store the change in data value over time. Object data are data represented by objects. The concepts of object, object-oriented design, object-oriented programming and object-oriented databases are known to those skilled in the art.
Data warehouse products and more custom database approaches typically collect data from back-end data sources and deposit the data into a new data warehouse (or data mart) for data analysis and presentation. Some data mining processes operate on data warehouses to provide detailed analysis such as marketing and sales trends, and to test hypothesis such as customer buying patterns. However, those analyses are usually only available to a few analysts and executives in an organization. In addition, a data warehouse usually stores historical data for long term analysis, but is not suitable for real time or near real time applications.
Application packages such as Intellution Dynamics Package by Intellution, Inc. of Foxborough, Mass. and InTouch by Wonderware Corporation of Irvine, Calif. provide for visualization of plant operational data in some manufacturing systems. These packages have very limited ability to retrieve and present relational data typically associated with other manufacturing systems and non-manufacturing systems such as enterprise resource planning (ERP) systems. Typically, the major limitations include an inability to monitor relational data as it changes over time, navigate the relational data for more detailed monitoring or status, and to find supporting details. Because they do not provide access to both point data and relational data, enterprises often have to use multiple systems to provide data visualization, navigation and analysis of various types and formats of data. Using multiple systems often results in high financial and computing expenses and programming and administrative complexity.
Some systems convert back-end data into relational data stored in a relational database for selection, analysis and visual presentation. Such a relational database typically needs to be managed by a database administrator, in order to handle the complexity of a relational database comprising multiple tables and indexes, especially when data has to be converted and acquired from different back-end systems. In addition, those systems cannot utilize the advantages of object data.
Some systems convert point data and relational data from back-end data sources into point data to present to users. Since the back-end data are converted into point data, those systems cannot utilize the advantages of object data and also lose any benefits associated with relational data.
Other systems convert back-end data into object data, but fail to provide access to the object data using a class-based representation model. What is needed is a system and method providing access to back-end data in object form, in real time, and using a class-based component and view model.
One aspect of the invention involves the use of a class-based component and view model to collect and display data from multiple sources. The class-based component and view model is preferably embodied within a system that uses reusable components and views to monitor the operation of a business entity, such as but not limited to a business entity that has manufacturing facilities or plants in various locations. The data that is collected and displayed by the system may, for example, include relational data, point data and/or time-series data. The system also preferably includes development tools for creating and deploying the reusable components and views to generate a model of a business entity,
A class-based component and view model has several advantages. One advantage is reusability. For example, if a new process is added to all plants, the user or developer only needs to add a component member xe2x80x9cthe new processxe2x80x9d to the existing component definition of xe2x80x9cplantxe2x80x9d. The user or developer need not re-create the component definition of xe2x80x9cplantxe2x80x9d. By selecting one menu command, the user or develop can then propagate the new process to all plants such as the Chicago Plant and the Milwaukee Plant, since all plants inherit the same common characteristics of the xe2x80x9cplantxe2x80x9d component. All existing definitions, connections and codes associated with the existing xe2x80x9cplantxe2x80x9d component can still be used. Another advantage is scalability. If a new Cleveland plant is added to existing plants, the user or developer only needs to create a new instance of the xe2x80x9cplantxe2x80x9d component, or create a new component xe2x80x9cCleveland plantxe2x80x9d comprising the xe2x80x9cplantxe2x80x9d component as one member, and the Cleveland plant will automatically inherit all the common characteristics of the plant component, specified in the plant component definition.
Under the class-based component and view model, views are class based. A view is a graphical representation of a component. Since a component may comprise components as its members, a view can also represent a collection of components. For example, a view representing a plant can be used to represent plants in Chicago, Milwaukee and Cleveland, with the same display format but connected to different back-end data. Since class-based components and views are reusable and scalable, developers and users save time on programming and managing. Moreover, since views correspond to components, which can represent business elements, users who build views do not need to understand the intricate details of back-end data locations and formats. Thus, a class-based model advantageously allows users to manage tasks typically managed by professional information technology developers. For example, once the xe2x80x9cplantxe2x80x9d component is defined, the user can use the xe2x80x9cplantxe2x80x9d component definition to create a new Cleveland plant without knowing the underlying data structure of the plant component. A user simply adds a new view for the Cleveland plant by creating a new copy of the xe2x80x9cplantxe2x80x9d view connected to the Cleveland plant. The user does not need to know the underlying data structure of the view. If a component has a member that is another component, the developer or user may insert one view representing the component member into the view representing the parent component. This views-in-views feature is very valuable, because modifying a class-based view does not require modifying other views that use the modified view, and the modified view propagates to all views that use the modified view.
A class-based component and view model also ensures the consistency of data structures. For example, once a xe2x80x9cplantxe2x80x9d component is defined, the Chicago, Milwaukee and Cleveland plants all share the common characteristics of a plant component. The change to the component definition of a xe2x80x9cplantxe2x80x9d will be reflected in the Chicago, Milwaukee and Cleveland plant definitions. Such a class-based model also reduces complexity of use, and enables users who are not skilled information technology professionals to create and modify components and views on their own. Users can think of the data structure not in programming terms, but in business terms, as business classes, components, and members. Advantages of class-based, i.e. object oriented data representation and programming are known to those skilled in the art.
The claimed system preferably allows multiple views corresponding to the same components, and thus allows users or developers to build different views of varying levels of detail corresponding to the same component. This is advantageous because different people within a business organization may demand different views that connect to the same data. For example, a plant foreman may want views that show the operating temperature, speed and production numbers of machines. The plant supervisor may want views that show the production numbers of machines. The company executive may want views that show the production totals of each plant. Some prefer to have data displayed in tables while others prefer charts. The system also preferably includes functionality for creating views in which data changes are displayed as animations or animation effects.